package ee.ttu.rakarh.commands;

import java.util.ArrayList;
import java.util.Collection;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.log4j.Logger;

import ee.ttu.rakarh.model.data.dao.ItemDAO;
import ee.ttu.rakarh.model.data.dao.ItemDAOImpl;
import ee.ttu.rakarh.model.data.dao.ItemTypeDAO;
import ee.ttu.rakarh.model.data.dao.ItemTypeDAOImpl;
import ee.ttu.rakarh.model.data.dao.StoreDAO;
import ee.ttu.rakarh.model.data.dao.StoreDAOImpl;
import ee.ttu.rakarh.model.data.entities.Item;
import ee.ttu.rakarh.model.data.entities.ItemType;
import ee.ttu.rakarh.model.data.entities.Store;

public class GetStoresCommand implements Command{
	
	private static final Logger LOG = Logger.getLogger(GetStoresCommand.class);

	@Override
	public Boolean execute(HttpServletRequest request,
			HttpServletResponse response) {
		Collection<Store> stores = new ArrayList<Store>();
		Collection<Store> storesByItemId = new ArrayList<Store>();
		Item  item = null;
		
		StoreDAO storeImpl = new StoreDAOImpl();
		ItemDAO itemImpl = new ItemDAOImpl();
		
		try{
			stores = storeImpl.getStores();
			
			String passedItemId = request.getParameter("itemId");
			if(passedItemId != null){
				int itemId = Integer.parseInt(passedItemId);
				item = itemImpl.getItemById(itemId);
				
				storesByItemId = storeImpl.getStoresByItemId(itemId);
			}			
		}catch (Exception e) {
			LOG.error(e);
		}
		
		request.setAttribute("stores", stores);
		request.setAttribute("item", item);
		request.setAttribute("storesByItemId", storesByItemId);
		
		
		return true;
	}

}
